// 文章创建请求类型
export interface CreateArticleRequest {
  title: string;
  content: string;
  summary?: string;
  author: string;
  categoryId: number;
  status: boolean;
  coverImage?: string;
  tags?: string[];
  isTop?: boolean;
  isRecommend?: boolean;
}

// 文章更新请求类型
export interface UpdateArticleRequest extends Partial<CreateArticleRequest> {
  id: number;
}

// 文章查询参数类型
export interface ArticleQueryParams {
  page?: number;
  limit?: number;
  categoryId?: number;
  status?: boolean;
  keyword?: string;
  userId?: number;
  isTop?: boolean;
  isRecommend?: boolean;
}

// 文章列表响应类型
export interface ArticleListResponse {
  articles: ArticleWithCategory[];
  total: number;
  page: number;
  limit: number;
  totalPages: number;
}

// 带分类信息的文章类型
export interface ArticleWithCategory {
  id: number;
  title: string;
  content: string;
  summary?: string;
  author: string;
  categoryId: number;
  status: boolean;
  coverImage?: string;
  tags: string[];
  views: number;
  likes: number;
  comments: number;
  isTop: boolean;
  isRecommend: boolean;
  publishedAt?: Date;
  createdAt: Date;
  updatedAt: Date;
  userId?: number;
  category: {
    id: number;
    name: string;
    description?: string;
    sort: number;
    status: boolean;
    createdAt: Date;
    updatedAt: Date;
  };
}

// 文章统计信息类型
export interface ArticleStats {
  total: number;
  published: number;
  draft: number;
  top: number;
  recommend: number;
} 